package deposito.dao;

import java.util.List;

import javax.ejb.Local;

import deposito.dto.ItemSolicitudArticulo;
import deposito.dto.SolicitudArticulo;
import deposito.entities.ItemSolicitudArticuloEntity;
import deposito.entities.SolicitudArticuloEntity;



@Local
public interface ISolicitudArticuloDAO {
	
	//buscarSolicitud (por id de solicitud)
	public SolicitudArticulo buscarSolicitudArticulo(int idSolicitud);
	
	//buscarSolicitud (por id de solicitud, idModulo, idOrigen)
	public SolicitudArticulo buscarSolicitudArticulo(int idSolicitud, int idModulo, int idOrigen);
	
	//buscarItemSolicitud (por id de item solicitud)
	public ItemSolicitudArticulo buscarItemSolicitudArticulo(int idItemSolicitud);
	
	//persistir solicitud
	void persistirSolicitudArticulo(SolicitudArticulo solicitud) throws Exception;
	
	//modificar solicitud
	void modificarSolicitud(SolicitudArticulo solicitud);
	
	//eliminar solicitud
	void eliminarSolicitud(int idSol);
	
	//listar todas las solicitudes de articulos
	public List<SolicitudArticulo> listarSolicitudes();
	
	//listar solicitudes por estado (VERIFICAR SI EL ESTADO DEBE PERSISTIRSE)
	public List<SolicitudArticulo> listarSolicitudesEstado(String estado);
	
	//listar todos los items de solicitudes de articulos
	public List<ItemSolicitudArticulo> listarItems();
	
	//listar items de solicitudes por estado (VERIFICAR SI EL ESTADO DEBE PERSISTIRSE)
	public List<ItemSolicitudArticulo> listarItemsEstado(char estado);
	
	//ItemToEntity
	public ItemSolicitudArticuloEntity itemToEntity(ItemSolicitudArticulo item, SolicitudArticuloEntity sol);
	
	//SolToEntity
	public SolicitudArticuloEntity solicitudArticuloToEntity(SolicitudArticulo solicitudArticulo);
	
}
